草庐IT

c++ - 为什么 sizeof(string) == 32?

全部标签

C - 在 strdup() 之后释放内存

我正在学习LearnCtheHardway在线类(class)。在下面的代码示例中,我不明白为什么需要两次free()调用。我以为只需要调用一次free(),因为只有一个malloc()发生。有人能解释一下为什么我们需要两个吗?如果我注释掉free(who->name);那么valgrind会告诉我我丢失了一block内存,就像这样;LEAKSUMMARY:definitelylost:21bytesin2blocks代码如下:#include#include#include#includestructPerson{char*name;intage;intheight;intweigh

C - 在 strdup() 之后释放内存

我正在学习LearnCtheHardway在线类(class)。在下面的代码示例中,我不明白为什么需要两次free()调用。我以为只需要调用一次free(),因为只有一个malloc()发生。有人能解释一下为什么我们需要两个吗?如果我注释掉free(who->name);那么valgrind会告诉我我丢失了一block内存,就像这样;LEAKSUMMARY:definitelylost:21bytesin2blocks代码如下:#include#include#include#includestructPerson{char*name;intage;intheight;intweigh